using System;
using System.Collections.Generic;
using SheLife.Domain.Common;

namespace SheLife.Domain.Entities
{
    /// <summary>
    /// 社区帖子实体类
    /// </summary>
    public class CommunityPost : BaseEntity
    {
        /// <summary>
        /// 用户ID
        /// </summary>
        public Guid UserId { get; set; }

        /// <summary>
        /// 帖子标题
        /// </summary>
        public string Title { get; set; }

        /// <summary>
        /// 帖子内容
        /// </summary>
        public string Content { get; set; }

        /// <summary>
        /// 帖子类型
        /// </summary>
        public string PostType { get; set; }

        /// <summary>
        /// 帖子分类
        /// </summary>
        public string Category { get; set; }

        /// <summary>
        /// 帖子标签
        /// </summary>
        public string Tags { get; set; }

        /// <summary>
        /// 封面图片
        /// </summary>
        public string CoverImage { get; set; }

        /// <summary>
        /// 浏览次数
        /// </summary>
        public int ViewCount { get; set; }

        /// <summary>
        /// 点赞次数
        /// </summary>
        public int LikeCount { get; set; }

        /// <summary>
        /// 评论次数
        /// </summary>
        public int CommentCount { get; set; }

        /// <summary>
        /// 收藏次数
        /// </summary>
        public int FavoriteCount { get; set; }

        /// <summary>
        /// 举报次数
        /// </summary>
        public int ReportCount { get; set; }

        /// <summary>
        /// 是否置顶
        /// </summary>
        public bool IsTop { get; set; }

        /// <summary>
        /// 是否精华
        /// </summary>
        public bool IsEssence { get; set; }

        /// <summary>
        /// 是否公开
        /// </summary>
        public bool IsPublic { get; set; }

        /// <summary>
        /// 是否允许评论
        /// </summary>
        public bool AllowComment { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        public string Status { get; set; }

        /// <summary>
        /// 排序
        /// </summary>
        public int Sort { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 创建人ID
        /// </summary>
        public Guid CreatedBy { get; set; }

        /// <summary>
        /// 更新人ID
        /// </summary>
        public Guid? UpdatedBy { get; set; }

        // 导航属性
        public SystemUser User { get; set; }
        public ICollection<CommunityPostComment> Comments { get; set; }
        public ICollection<CommunityPostLike> Likes { get; set; }
        public ICollection<CommunityPostFavorite> Favorites { get; set; }
        public ICollection<CommunityPostReport> Reports { get; set; }
    }
}